home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-12-16 | 38.8 KB | 1,109 lines |
- Newsgroups: comp.sources.misc
- X-UNIX-From: dvadura@watdragon.waterloo.edu
- subject: v15i093: dmake version 3.6 patch 1 (part 04/5)
- from: Dennis Vadura <dvadura@watdragon.waterloo.edu>
- Sender: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
-
- Posting-number: Volume 15, Issue 93
- Submitted-by: Dennis Vadura <dvadura@watdragon.waterloo.edu>
- Archive-name: dmake-3.6/patch04
-
- #!/bin/sh
- # this is part 4 of a multipart archive
- # do not concatenate these parts, unpack them in order with /bin/sh
- # file dm36.p1 continued
- #
- CurArch=4
- if test ! -r s2_seq_.tmp
- then echo "Please unpack part 1 first!"
- exit 1; fi
- ( read Scheck
- if test "$Scheck" != $CurArch
- then echo "Please unpack part $Scheck next!"
- exit 1;
- else exit 0; fi
- ) < s2_seq_.tmp || exit 1
- sed 's/^X//' << 'SHAR_EOF' >> dm36.p1
- XX***************
- XX*** 34,39 ****
- XX--- 34,46 ----
- XX *
- XX */
- XX
- XX+ #if defined (_MSC_VER)
- XX+ # if _MSC_VER < 500
- XX+ Force a compile-time blowup.
- XX+ Do not define define _MSC_VER for MSC compilers ealier than 5.0.
- XX+ # endif
- XX+ #endif
- XX+
- XX /* define this for configurations that don't have the coreleft function
- XX * so that the code compiles. To my knowledge coreleft exists only on
- XX * Turbo C, but it is needed here since the function is used in many debug
- XX***************
- XX*** 48,57 ****
- XX # define SIGTERM SIGINT
- XX #endif
- XX
- XX! /* Fixes unimplemented line buffering for MSC
- XX * MSC _IOLBF is the same as _IOFBF
- XX- * This redefinition causes the following warning, but ignore it
- XX- * c:/usr/include/stdio.h(129) : warning C4005: '_IOLBF' : macro redefinition
- XX */
- XX #if defined(MSDOS) && defined (_MSC_VER)
- XX # undef _IOLBF
- XX--- 55,62 ----
- XX # define SIGTERM SIGINT
- XX #endif
- XX
- XX! /* Fixes unimplemented line buffering for MSC 5.x and 6.0.
- XX * MSC _IOLBF is the same as _IOFBF
- XX */
- XX #if defined(MSDOS) && defined (_MSC_VER)
- XX # undef _IOLBF
- XX***************
- XX*** 59,65 ****
- XX #endif
- XX
- XX /* in alloc.h: size_t is redefined
- XX! * defined in stdio.h which is included alloc.h
- XX */
- XX #if defined(MSDOS) && defined (_MSC_VER)
- XX # define _TYPES_
- XX--- 64,70 ----
- XX #endif
- XX
- XX /* in alloc.h: size_t is redefined
- XX! * defined in stdio.h which is included by alloc.h
- XX */
- XX #if defined(MSDOS) && defined (_MSC_VER)
- XX # define _TYPES_
- XX*** /u2/dvadura/src/generic/dmake/src-patchlvl1/msdos/exec.h Sat Oct 6 12:05:40 1990
- XX--- msdos/exec.h Sun Oct 28 23:16:16 1990
- XX***************
- XX*** 9,16 ****
- XX #endif
- XX #endif
- XX
- XX! extern int exec ANSI((int, char far *, char far *, unsigned int,
- XX! unsigned int, char far *));
- XX
- XX #ifndef MK_FP
- XX #define MK_FP(seg,ofs) \
- XX--- 9,15 ----
- XX #endif
- XX #endif
- XX
- XX! extern int exec ANSI((int, char far *, char far *, unsigned int, char far *));
- XX
- XX #ifndef MK_FP
- XX #define MK_FP(seg,ofs) \
- XX*** /u2/dvadura/src/generic/dmake/src-patchlvl1/msdos/exec.asm Sat Oct 6 12:05:50 1990
- XX--- msdos/exec.asm Sun Oct 28 23:16:15 1990
- XX***************
- XX*** 1,6 ****
- XX! ; You must assemble this file with masm (or tasm) flag
- XX! ; /dmmodel where model is one of {small, compact, medium, large}
- XX ;
- XX ifdef msmall
- XX .model small
- XX argbase equ 4
- XX--- 1,44 ----
- XX! ; SYNOPSIS
- XX! ; Exec code for the swapping version of DOS spawn.
- XX! ;
- XX! ; DESCRIPTION
- XX! ; This code is a model independent version of DOS exec that will swap
- XX! ; the calling process out to secondary storage prior to running the
- XX! ; child. The prototype for calling the exec function is below.
- XX ;
- XX+ ; exec( int swap, char far *program, char far *cmdtail,
- XX+ ; int environment_seg, int env_size, char far *tmpfilename );
- XX+ ;
- XX+ ;
- XX+ ; To assemble this file issue the command:
- XX+ ;
- XX+ ; tasm /mx /t /dmmodel exec.asm
- XX+ ;
- XX+ ; where 'model' is one of {small, compact, medium, large}, you may
- XX+ ; also use MASM 5.1 to assemble this file, in this case simply replace
- XX+ ; 'tasm' with 'masm' in the above command line.
- XX+ ;
- XX+ ; AUTHOR
- XX+ ; Dennis Vadura, dvadura@watdragon.uwaterloo.ca
- XX+ ; CS DEPT, University of Waterloo, Waterloo, Ont., Canada
- XX+ ;
- XX+ ; COPYRIGHT
- XX+ ; Copyright (c) 1990 by Dennis Vadura. All rights reserved.
- XX+ ;
- XX+ ; This program is free software; you can redistribute it and/or
- XX+ ; modify it under the terms of the GNU General Public License
- XX+ ; (version 1), as published by the Free Software Foundation, and
- XX+ ; found in the file 'LICENSE' included with this distribution.
- XX+ ;
- XX+ ; This program is distributed in the hope that it will be useful,
- XX+ ; but WITHOUT ANY WARRANTY; without even the implied warrant of
- XX+ ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- XX+ ; GNU General Public License for more details.
- XX+ ;
- XX+ ; You should have received a copy of the GNU General Public License
- XX+ ; along with this program; if not, write to the Free Software
- XX+ ; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- XX+ ;
- XX ifdef msmall
- XX .model small
- XX argbase equ 4
- XX***************
- XX*** 21,28 ****
- XX a_prog equ <bp+argbase+2>
- XX a_tail equ <bp+argbase+6>
- XX a_env equ <bp+argbase+10>
- XX! a_esiz equ <bp+argbase+12>
- XX! a_tmp equ <bp+argbase+14>
- XX
- XX
- XX ; Define all useful equ's
- XX--- 59,65 ----
- XX a_prog equ <bp+argbase+2>
- XX a_tail equ <bp+argbase+6>
- XX a_env equ <bp+argbase+10>
- XX! a_tmp equ <bp+argbase+12>
- XX
- XX
- XX ; Define all useful equ's
- XX***************
- XX*** 49,57 ****
- XX old_ss dw ? ; save stack seg across exec
- XX old_sp dw ? ; save stack ptr across exec
- XX progsize dw ? ; original size of the program
- XX resend dw ? ; paragraph where resident code ends
- XX envseg dw ? ; paragraph of environment segment
- XX- envsize dw ? ; length of environment in paragraphs
- XX psp dw ? ; our own psp
- XX swap dw ? ; swapping selection flag
- XX retcode dw ? ; return code from exec
- XX--- 86,94 ----
- XX old_ss dw ? ; save stack seg across exec
- XX old_sp dw ? ; save stack ptr across exec
- XX progsize dw ? ; original size of the program
- XX+ rootsize dw ? ; size of base root kept during swap
- XX resend dw ? ; paragraph where resident code ends
- XX envseg dw ? ; paragraph of environment segment
- XX psp dw ? ; our own psp
- XX swap dw ? ; swapping selection flag
- XX retcode dw ? ; return code from exec
- XX***************
- XX*** 126,132 ****
- XX ; First define the critical-error and control-brk handlers.
- XX ; The critical error handler simply pops the machine state and returns an
- XX ; access denied result code.
- XX! crit_err_handler proc near
- XX add sp, 6 ; ip/cs/flags ...
- XX pop ax
- XX pop bx
- XX--- 163,169 ----
- XX ; First define the critical-error and control-brk handlers.
- XX ; The critical error handler simply pops the machine state and returns an
- XX ; access denied result code.
- XX! crit_err_handler proc far
- XX add sp, 6 ; ip/cs/flags ...
- XX pop ax
- XX pop bx
- XX***************
- XX*** 150,174 ****
- XX
- XX ;-----------------------------------------------------------------------------
- XX ; Here we set the interrupted flag, and terminate the currently running
- XX! ; ess. proc
- XX! ctl_brk_handler proc near
- XX inc cs:interrupted ; set the flag
- XX
- XX ; Make certain it isn't us that is going to get terminated.
- XX ; There is a small window where the in_exec flag is set but the child is
- XX ; not running yet, I assume that DOS doesn't test for ctl_brk at that time
- XX! ; as it is bussily creating a new ess. proc
- XX cmp cs:in_exec,0
- XX! je just_return
- XX! mov ax, 04cffH ; stop the sucker!
- XX! int 21H
- XX! just_return: ret
- XX ctl_brk_handler endp
- XX
- XX
- XX ;-----------------------------------------------------------------------------
- XX ; Something really nasty happened, so abort the exec call and exit.
- XX! ; This kills the calling ess proc altogether, and is a very nasty way of
- XX ; termination since files may still be open etc.
- XX abort_exec_rhdr label near
- XX mov dx, offset error_rhdr
- XX--- 187,211 ----
- XX
- XX ;-----------------------------------------------------------------------------
- XX ; Here we set the interrupted flag, and terminate the currently running
- XX! ; process.
- XX! ctl_brk_handler proc far
- XX! clc ; make sure carry is clear
- XX inc cs:interrupted ; set the flag
- XX
- XX ; Make certain it isn't us that is going to get terminated.
- XX ; There is a small window where the in_exec flag is set but the child is
- XX ; not running yet, I assume that DOS doesn't test for ctl_brk at that time
- XX! ; as it is bussily creating a new process.
- XX cmp cs:in_exec,0
- XX! je just_return ; note this implies CF == 0
- XX! stc ; set CF to abort child
- XX! just_return: iret
- XX ctl_brk_handler endp
- XX
- XX
- XX ;-----------------------------------------------------------------------------
- XX ; Something really nasty happened, so abort the exec call and exit.
- XX! ; This kills the calling process altogether, and is a very nasty way of
- XX ; termination since files may still be open etc.
- XX abort_exec_rhdr label near
- XX mov dx, offset error_rhdr
- XX***************
- XX*** 187,196 ****
- XX jmp print_it
- XX abort_exec proc near
- XX mov dx, offset error_string
- XX! print_it: mov bx, [swap]
- XX call [free_resource+bx]
- XX mov ax, cs
- XX mov ds, ax
- XX mov ah, 9
- XX int 21H
- XX kill_program: mov ax, 04cffH ; nuke it!
- XX--- 224,235 ----
- XX jmp print_it
- XX abort_exec proc near
- XX mov dx, offset error_string
- XX! print_it: push dx
- XX! mov bx, [swap]
- XX call [free_resource+bx]
- XX mov ax, cs
- XX mov ds, ax
- XX+ pop dx
- XX mov ah, 9
- XX int 21H
- XX kill_program: mov ax, 04cffH ; nuke it!
- XX***************
- XX*** 402,408 ****
- XX ; - walk DOS allocation chain and write out all other segments owned by
- XX ; the current program that are contiguous with the _psp segment
- XX ; - copy the environment down to low memory
- XX! ; - resize the current _psp segment to savesize+envsize.
- XX ; - free all segments belonging to program except current _psp segment
- XX swap_out proc near
- XX mov ax, 05800H ; get memory alocation strategy
- XX--- 441,447 ----
- XX ; - walk DOS allocation chain and write out all other segments owned by
- XX ; the current program that are contiguous with the _psp segment
- XX ; - copy the environment down to low memory
- XX! ; - resize the current _psp segment to savesize
- XX ; - free all segments belonging to program except current _psp segment
- XX swap_out proc near
- XX mov ax, 05800H ; get memory alocation strategy
- XX***************
- XX*** 427,432 ****
- XX--- 466,472 ----
- XX add bx, ax ; bx is size of program to keep
- XX sub si, bx ; si is # of paragraphs to save.
- XX add di, bx ; di is paragraph to start at
- XX+ mov rootsize, bx
- XX mov resend, di ; cs:resend is saved start para
- XX mov al, seg_no_alloc ; set no allocation for segment
- XX call write_segment
- XX***************
- XX*** 434,441 ****
- XX
- XX ; We have now saved the portion of the program segment that will not remain
- XX ; resident during the exec. We should now walk the DOS allocation chain and
- XX! ; write out all other segments owned by the current ess. proc
- XX! mov ax, [psp]
- XX dec ax
- XX mov es, ax
- XX mov bx, offset write_segment_data
- XX--- 474,481 ----
- XX
- XX ; We have now saved the portion of the program segment that will not remain
- XX ; resident during the exec. We should now walk the DOS allocation chain and
- XX! ; write out all other segments owned by the current process.
- XX! save_segments: mov ax, [psp]
- XX dec ax
- XX mov es, ax
- XX mov bx, offset write_segment_data
- XX***************
- XX*** 443,486 ****
- XX jc abort_swap_out
- XX
- XX ; Now we must walk the chain of allocated memory blocks again and free
- XX! ; all those that are owned by the current ess, proc except the one that is
- XX! ; the current ess' proc psp.
- XX! free_segments: mov es, [psp]
- XX mov bx, offset free_dos_segment
- XX call walk_arena_chain
- XX! jnc copy_environ
- XX jmp abort_exec_free ; can't fix it up now.
- XX
- XX! ; we have now written all segments that belong to the program to some
- XX! ; other resource. We can now copy the environment and resize the psp
- XX! ; segment.
- XX! copy_environ: mov ax, [envseg] ; get the environment segment
- XX! or ax, ax ; skip copy if it's null
- XX! je resize_program
- XX! push ds
- XX! push es
- XX! mov bx, [resend] ; here is where the environ goes
- XX! mov es, bx
- XX! mov cx, [envsize]
- XX! add bx, cx
- XX! sub bx, [psp]
- XX! mov [envsize], bx ; bx is size of program after
- XX! shl cx, 1 ; environ is copied.
- XX! shl cx, 1
- XX! shl cx, 1
- XX! shl cx, 1
- XX! mov ds, ax ; ds:si is source address
- XX! xor si, si ; es:di is dest address
- XX! mov di, si ; cx is count in bytes.
- XX! call copy_data
- XX! mov [envseg], es ; point the envseg at the
- XX! pop es ; right spot
- XX! pop ds
- XX!
- XX! ; We now resize the program to the size specified by cs:envsize. This will
- XX! ; free the memory taken up by the current program segment.
- XX resize_program: mov es, [psp] ; es is segment to resize.
- XX! mov bx, [envsize] ; bx is size of segment.
- XX mov ah, 04aH ; resize memory block
- XX int 21H
- XX jnc swap_out_ok
- XX--- 483,502 ----
- XX jc abort_swap_out
- XX
- XX ; Now we must walk the chain of allocated memory blocks again and free
- XX! ; all those that are owned by the current process, except the one that is
- XX! ; the current process' psp.
- XX! free_segments: mov ax, [psp]
- XX! dec ax
- XX! mov es,ax
- XX mov bx, offset free_dos_segment
- XX call walk_arena_chain
- XX! jnc resize_program
- XX jmp abort_exec_free ; can't fix it up now.
- XX
- XX! ; We now resize the program to the size specified by cs:rootsize. This will
- XX! ; free most of the memory taken up by the current program segment.
- XX resize_program: mov es, [psp] ; es is segment to resize.
- XX! mov bx, [rootsize] ; bx is size of segment.
- XX mov ah, 04aH ; resize memory block
- XX int 21H
- XX jnc swap_out_ok
- XX***************
- XX*** 513,530 ****
- XX no_swap_out: cmp [interrupted], 0 ; were we interrupted?
- XX jne leave_exec ; yep, so clean up, don't exec
- XX
- XX ; set up the parameter block for the DOS exec call.
- XX ; offset contents
- XX ; 00 segment address of environment to be passed,
- XX ; 0 => use parents env.
- XX! ; 02 pointer to command tail for new ess. proc
- XX ; 06 pointer to fcb1
- XX ; 0a pointer to fcb2
- XX mov cx, cs
- XX mov [word ptr ex_cmdtail], offset cmdtail
- XX mov [word ptr ex_cmdtail+2], cx
- XX- mov ax, [envseg]
- XX- mov [ex_envseg], ax
- XX
- XX ; set up registers for exec call
- XX ; ds:dx - pointer to pathname of program to execute
- XX--- 529,557 ----
- XX no_swap_out: cmp [interrupted], 0 ; were we interrupted?
- XX jne leave_exec ; yep, so clean up, don't exec
- XX
- XX+ ; free passed in environment block if it is non zero.
- XX+ ; This way the parent program does not need to free it.
- XX+ mov ax, [envseg]
- XX+ or ax, ax
- XX+ je setup_block
- XX+ push ax
- XX+ mov es, ax
- XX+ mov ah, 49H
- XX+ int 21H
- XX+ pop ax
- XX+
- XX ; set up the parameter block for the DOS exec call.
- XX ; offset contents
- XX ; 00 segment address of environment to be passed,
- XX ; 0 => use parents env.
- XX! ; 02 pointer to command tail for new process.
- XX ; 06 pointer to fcb1
- XX ; 0a pointer to fcb2
- XX+ setup_block: mov ax, [envseg]
- XX+ mov [ex_envseg], ax
- XX mov cx, cs
- XX mov [word ptr ex_cmdtail], offset cmdtail
- XX mov [word ptr ex_cmdtail+2], cx
- XX
- XX ; set up registers for exec call
- XX ; ds:dx - pointer to pathname of program to execute
- XX***************
- XX*** 560,574 ****
- XX cbw
- XX mov [retcode], ax
- XX
- XX! leave_exec: mov [in_exec], 0 ; all done, reset in_exec flag
- XX! cmp [swap], 0 ; check swap, if non-zero swap back in
- XX je no_swap_in
- XX call swap_in
- XX- no_swap_in: ret
- XX- do_exec endp
- XX
- XX
- XX
- XX ;==============================================================================
- XX ; Everything past this point is overwriten with the environment and new
- XX ; program after the currently executing program is swapped out.
- XX--- 587,605 ----
- XX cbw
- XX mov [retcode], ax
- XX
- XX! leave_exec: cmp [swap], 0 ; check swap, if non-zero swap back in
- XX je no_swap_in
- XX call swap_in
- XX
- XX+ ; Clear the in_exec after the swap back in. This way we are guaranteed to
- XX+ ; get parent in and the resources freed should a ^C be hit when we are reading
- XX+ ; the image in.
- XX+ no_swap_in: mov [in_exec], 0
- XX+ ret
- XX+ do_exec endp
- XX
- XX
- XX+
- XX ;==============================================================================
- XX ; Everything past this point is overwriten with the environment and new
- XX ; program after the currently executing program is swapped out.
- XX***************
- XX*** 596,602 ****
- XX
- XX
- XX ;-----------------------------------------------------------------------------
- XX! ; This routine is used to walk the DOS alocated memory block chain and,
- XX ; starting at address supplied in the es register. For each block it
- XX ; calls the routine specified by the bx register with the segment length
- XX ; in si, and it's address in di. It does not apply the routine to the
- XX--- 627,633 ----
- XX
- XX
- XX ;-----------------------------------------------------------------------------
- XX! ; This routine is used to walk the DOS allocated memory block chain
- XX ; starting at address supplied in the es register. For each block it
- XX ; calls the routine specified by the bx register with the segment length
- XX ; in si, and it's address in di. It does not apply the routine to the
- XX***************
- XX*** 612,625 ****
- XX mov di, es
- XX inc di
- XX mov ax, word ptr es:1
- XX cmp ax, cs:psp ; is it owned by us?
- XX jne walk_done ; NOPE! -- all done
- XX! cmp di, cs:psp ; make sure we don't
- XX! je next_block ; touch our psp
- XX push di
- XX push si
- XX push bx
- XX! call bx ; handle the segment
- XX pop bx
- XX pop si
- XX pop di
- XX--- 643,663 ----
- XX mov di, es
- XX inc di
- XX mov ax, word ptr es:1
- XX+
- XX+ ; Stop the search if the block is NOT owned by us. Ignore our own psp block
- XX+ ; and our environment segment block.
- XX cmp ax, cs:psp ; is it owned by us?
- XX jne walk_done ; NOPE! -- all done
- XX! cmp di, cs:envseg ; skip our environment
- XX! je next_block
- XX! cmp di, cs:psp ; skip our psp
- XX! je next_block
- XX!
- XX! ; Now save state and call the routine pointed at by [bx].
- XX push di
- XX push si
- XX push bx
- XX! call bx
- XX pop bx
- XX pop si
- XX pop di
- XX***************
- XX*** 818,825 ****
- XX ; This is the main entry routine into the swap code and corresponds to the
- XX ; following C function call:
- XX ;
- XX! ; exec( int swap, char far *program, char far *cmdtail,
- XX! ; int environment_seg, int env_size, char far *tmpfilename );
- XX ;
- XX ; Exec performs the following:
- XX ; 1. set up the local code segment copies of arguments to the exec call.
- XX--- 856,863 ----
- XX ; This is the main entry routine into the swap code and corresponds to the
- XX ; following C function call:
- XX ;
- XX! ; exec( int swap, char far *program, char far *cmdtail, int environment_seg,
- XX! ; char far *tmpfilename );
- XX ;
- XX ; Exec performs the following:
- XX ; 1. set up the local code segment copies of arguments to the exec call.
- XX***************
- XX*** 827,839 ****
- XX ; stack.
- XX ; 3. save old interrupt vectors for ctrl-brk.
- XX ; 4. install our own handler for the ctrl-brk interrupt, our handler
- XX! ; terminates the current running ess, proc and returns with non-zero
- XX ; status code.
- XX ; 5. get our psp
- XX ; 6. setup arguments for exec call
- XX ; 7. exec the program, save result code on return.
- XX ; 8. restore previous ctrl-brk and crit-error handler.
- XX! ; 9. restore previous ess proc stack, and segment registers.
- XX ; 10. return from exec with child result code in AX
- XX ; and global _Interrupted flag set to true if child execution was
- XX ; interrupted.
- XX--- 865,877 ----
- XX ; stack.
- XX ; 3. save old interrupt vectors for ctrl-brk.
- XX ; 4. install our own handler for the ctrl-brk interrupt, our handler
- XX! ; terminates the current running process, and returns with non-zero
- XX ; status code.
- XX ; 5. get our psp
- XX ; 6. setup arguments for exec call
- XX ; 7. exec the program, save result code on return.
- XX ; 8. restore previous ctrl-brk and crit-error handler.
- XX! ; 9. restore previous process stack, and segment registers.
- XX ; 10. return from exec with child result code in AX
- XX ; and global _Interrupted flag set to true if child execution was
- XX ; interrupted.
- XX***************
- XX*** 862,869 ****
- XX mov es:swap, ax
- XX mov ax, ss:[a_env] ; save env seg to use
- XX mov es:envseg, ax
- XX- mov ax, ss:[a_esiz] ; get environment's size
- XX- mov es:envsize, ax
- XX
- XX mov di, offset cs:cmdpath ; copy the command
- XX lds si, ss:[a_prog] ; 65 bytes worth
- XX--- 900,905 ----
- XX*** /u2/dvadura/src/generic/dmake/src-patchlvl1/msdos/config.mk Thu Oct 4 09:24:52 1990
- XX--- msdos/config.mk Sun Oct 28 23:16:14 1990
- XX***************
- XX*** 6,12 ****
- XX
- XX # Memory model to compile for
- XX # set to s - small, m - medium, c - compact, l - large
- XX! MODEL = c
- XX
- XX STARTUPFILE = $(OS)/startup.mk
- XX
- XX--- 6,16 ----
- XX
- XX # Memory model to compile for
- XX # set to s - small, m - medium, c - compact, l - large
- XX! .IF $(DEBUG)
- XX! MODEL = l
- XX! .ELSE
- XX! MODEL = c
- XX! .END
- XX
- XX STARTUPFILE = $(OS)/startup.mk
- XX
- XX***************
- XX*** 18,25 ****
- XX LDTMPLIB = <+$(LDLIBS:s,/,\\,:t"+\n")\n+>
- XX
- XX # Debug flags
- XX! DB_CFLAGS = -DDBUG -v
- XX! DB_LDFLAGS = /v
- XX DB_LDLIBS =
- XX
- XX # NO Debug flags
- XX--- 22,29 ----
- XX LDTMPLIB = <+$(LDLIBS:s,/,\\,:t"+\n")\n+>
- XX
- XX # Debug flags
- XX! DB_CFLAGS = -DDBUG
- XX! DB_LDFLAGS =
- XX DB_LDLIBS =
- XX
- XX # NO Debug flags
- XX***************
- XX*** 31,38 ****
- XX CFLAGS += -I$(OS)
- XX
- XX # Common MSDOS source files.
- XX! # Define NOSWAP to non-null for the swap code to be excluded on making.
- XX! .IF $(NOSWAP) == $(NULL)
- XX SWP_SRC = find.c spawn.c
- XX ASRC += exec.asm
- XX .END
- XX--- 35,44 ----
- XX CFLAGS += -I$(OS)
- XX
- XX # Common MSDOS source files.
- XX! # Define SWAP to anything but 'y' for the swap code to be excluded on making.
- XX! # Swapping for DOS versions is enabled by default.
- XX! SWAP *= y
- XX! .IF $(SWAP) == y
- XX SWP_SRC = find.c spawn.c
- XX ASRC += exec.asm
- XX .END
- XX*** /u2/dvadura/src/generic/dmake/src-patchlvl1/msdos/arlib.c Sat Oct 6 12:05:18 1990
- XX--- msdos/arlib.c Mon Oct 22 16:53:32 1990
- XX***************
- XX*** 1,4 ****
- XX! /* RCS -- $Header: /u2/dvadura/src/generic/dmake/src/msdos/RCS/arlib.c,v 1.1 90/10/06 12:05:19 dvadura Exp $
- XX -- SYNOPSIS -- Library access code.
- XX --
- XX -- DESCRIPTION
- XX--- 1,4 ----
- XX! /* RCS -- $Header: /u2/dvadura/src/generic/dmake/src/msdos/RCS/arlib.c,v 1.1 90/10/06 12:05:19 dvadura Exp Locker: dvadura $
- XX -- SYNOPSIS -- Library access code.
- XX --
- XX -- DESCRIPTION
- XX***************
- XX*** 35,41 ****
- XX
- XX #include "extern.h"
- XX #include "stdmacs.h"
- XX- #include "vextern.h"
- XX
- XX time_t
- XX seek_arch(name, lib)
- XX--- 35,40 ----
- XX*** /u2/dvadura/src/generic/dmake/src-patchlvl1/man/dmake.tf Sat Oct 6 12:05:02 1990
- XX--- man/dmake.tf Sun Oct 28 13:26:42 1990
- XX***************
- XX*** 3,15 ****
- XX .ds TB "0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.5i +0.5i +2.0i
- XX .de Ip
- XX .fi
- XX! .nr Ip \w\\$1
- XX .IP "\\$1" \\n(Ipu
- XX \\$2
- XX .nf
- XX ..
- XX .de Is
- XX! .nr )I \w\\$1u
- XX ..
- XX .de Ii
- XX .in \\n()Ru
- XX--- 3,15 ----
- XX .ds TB "0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.5i +0.5i +2.0i
- XX .de Ip
- XX .fi
- XX! .nr Ip \w'\\$1 '
- XX .IP "\\$1" \\n(Ipu
- XX \\$2
- XX .nf
- XX ..
- XX .de Is
- XX! .nr )I \w'\\$1'u
- XX ..
- XX .de Ii
- XX .in \\n()Ru
- XX***************
- XX*** 50,57 ****
- XX .B -f
- XX flag then \fBdmake\fR uses standard input as the source of the makefile text.
- XX .PP
- XX! Any macro definitions (arguments with embedded
- XX! .Q "="
- XX signs) that appear on the command line are processed first
- XX and supercede definitions for macros of the same name found
- XX within the makefile. In general it is impossible for definitions found
- XX--- 50,56 ----
- XX .B -f
- XX flag then \fBdmake\fR uses standard input as the source of the makefile text.
- XX .PP
- XX! Any macro definitions (arguments with embedded "="
- XX signs) that appear on the command line are processed first
- XX and supercede definitions for macros of the same name found
- XX within the makefile. In general it is impossible for definitions found
- XX***************
- XX*** 77,85 ****
- XX section found at the end of this document.
- XX .SH OPTIONS
- XX .IP "\fB\-A\fR"
- XX! Enable AUGMAKE special inference rule transformations (see the
- XX! .Q "PERCENT(%) RULES"
- XX! section), these are set to off by default.
- XX .IP "\fB\-e\fR"
- XX Read the environment and define all strings of the
- XX form '\fBENV-VAR\fP=\fIevalue\fP'
- XX--- 76,83 ----
- XX section found at the end of this document.
- XX .SH OPTIONS
- XX .IP "\fB\-A\fR"
- XX! Enable AUGMAKE special inference rule transformations
- XX! (see the "PERCENT(%) RULES" section), these are set to off by default.
- XX .IP "\fB\-e\fR"
- XX Read the environment and define all strings of the
- XX form '\fBENV-VAR\fP=\fIevalue\fP'
- XX***************
- XX*** 120,128 ****
- XX (useful for debugging, but cannot be re-read by \fBdmake\fP)
- XX .IP "\fB\-P#\fR"
- XX On systems that support multi-processing cause \fBdmake\fP to use \fI#\fP
- XX! concurrent child processes to make targets. See the
- XX! .Q "MULTI PROCESSING"
- XX! section for more information.
- XX .IP "\fB\-q\fR"
- XX Check and see if the target is up to date. Exits with code 0 if up to date,
- XX 1 otherwise.
- XX--- 118,125 ----
- XX (useful for debugging, but cannot be re-read by \fBdmake\fP)
- XX .IP "\fB\-P#\fR"
- XX On systems that support multi-processing cause \fBdmake\fP to use \fI#\fP
- XX! concurrent child processes to make targets.
- XX! See the "MULTI PROCESSING" section for more information.
- XX .IP "\fB\-q\fR"
- XX Check and see if the target is up to date. Exits with code 0 if up to date,
- XX 1 otherwise.
- XX***************
- XX*** 718,724 ****
- XX Thus using another example we have:
- XX .RS
- XX .sp
- XX! .Is "test/{ f1 ""f2"" """" }.o "
- XX .Ii "test/{f1 f2}.o"
- XX --> test/f1.o test/f2.o
- XX .Ii "test/ {f1 f2}.o"
- XX--- 715,721 ----
- XX Thus using another example we have:
- XX .RS
- XX .sp
- XX! .Is "test/{ f1 f2 }.o "
- XX .Ii "test/{f1 f2}.o"
- XX --> test/f1.o test/f2.o
- XX .Ii "test/ {f1 f2}.o"
- XX***************
- XX*** 725,732 ****
- XX --> test/ f1.o f2.o
- XX .Ii "test/{f1 f2} .o"
- XX --> test/f1 test/f2 .o
- XX! .Ii "test/{ f1 ""f2"" """" }.o"
- XX! --> test/f1.o test/f2.o test/.o
- XX .sp
- XX .Ii and
- XX .sp
- XX--- 722,729 ----
- XX --> test/ f1.o f2.o
- XX .Ii "test/{f1 f2} .o"
- XX --> test/f1 test/f2 .o
- XX! .Ii "test/{ "f1" """" }.o"
- XX! --> test/f1.o test/.o
- XX .sp
- XX .Ii and
- XX .sp
- XX*** /u2/dvadura/src/generic/dmake/src-patchlvl1/man/dmake.p Sat Oct 6 12:26:44 1990
- XX--- man/dmake.p Sun Oct 28 13:27:42 1990
- XX***************
- XX*** 869,879 ****
- XX A null token in the token list is specified using "". Thus
- XX using another example we have:
- XX
- XX! test/{f1 f2}.o --> test/f1.o test/f2.o
- XX! test/ {f1 f2}.o --> test/ f1.o f2.o
- XX! test/{f1 f2} .o --> test/f1 test/f2 .o
- XX! test/{ f1 "f2" "" }.o --> test/f1.o test/f2.o
- XX! test/.o
- XX
- XX and
- XX
- XX--- 869,878 ----
- XX A null token in the token list is specified using "". Thus
- XX using another example we have:
- XX
- XX! test/{f1 f2}.o --> test/f1.o test/f2.o
- XX! test/ {f1 f2}.o --> test/ f1.o f2.o
- XX! test/{f1 f2} .o --> test/f1 test/f2 .o
- XX! test/{ --> test/f1.o test/.o
- XX
- XX and
- XX
- XX***************
- XX*** 890,895 ****
- XX--- 889,895 ----
- XX dencies. Such entries are called _t_a_r_g_e_t_/_p_r_e_r_e_q_u_i_s_i_t_e or
- XX _r_u_l_e definitions. Each rule definition is optionally fol-
- XX lowed by a set of lines that provide a recipe for updating
- XX+ any targets defined by the rule. Whenever ddmmaakkee attempts to
- XX
- XX
- XX
- XX***************
- XX*** 902,908 ****
- XX
- XX
- XX
- XX- any targets defined by the rule. Whenever ddmmaakkee attempts to
- XX bring a target up to date and an explicit recipe is provided
- XX with a rule defining the target, that recipe is used to
- XX update the target. A rule definition begins with a line
- XX--- 902,907 ----
- XX***************
- XX*** 954,959 ****
- XX--- 953,959 ----
- XX
- XX -- says to clear the previous list of prerequisites before
- XX adding the new prerequisites. Thus,
- XX+
- XX
- XX
- XX
- XX*** /u2/dvadura/src/generic/dmake/src-patchlvl1/man/dmake.nc Sat Oct 6 12:26:46 1990
- XX--- man/dmake.nc Mon Oct 29 20:29:13 1990
- XX***************
- XX*** 869,879 ****
- XX A null token in the token list is specified using "". Thus
- XX using another example we have:
- XX
- XX! test/{f1 f2}.o --> test/f1.o test/f2.o
- XX! test/ {f1 f2}.o --> test/ f1.o f2.o
- XX! test/{f1 f2} .o --> test/f1 test/f2 .o
- XX! test/{ f1 "f2" "" }.o --> test/f1.o test/f2.o
- XX! test/.o
- XX
- XX and
- XX
- XX--- 869,878 ----
- XX A null token in the token list is specified using "". Thus
- XX using another example we have:
- XX
- XX! test/{f1 f2}.o --> test/f1.o test/f2.o
- XX! test/ {f1 f2}.o --> test/ f1.o f2.o
- XX! test/{f1 f2} .o --> test/f1 test/f2 .o
- XX! test/{ --> test/f1.o test/.o
- XX
- XX and
- XX
- XX***************
- XX*** 890,895 ****
- XX--- 889,895 ----
- XX dencies. Such entries are called target/prerequisite or
- XX rule definitions. Each rule definition is optionally fol-
- XX lowed by a set of lines that provide a recipe for updating
- XX+ any targets defined by the rule. Whenever dmake attempts to
- XX
- XX
- XX
- XX***************
- XX*** 902,908 ****
- XX
- XX
- XX
- XX- any targets defined by the rule. Whenever dmake attempts to
- XX bring a target up to date and an explicit recipe is provided
- XX with a rule defining the target, that recipe is used to
- XX update the target. A rule definition begins with a line
- XX--- 902,907 ----
- XX***************
- XX*** 954,959 ****
- XX--- 953,959 ----
- XX
- XX - says to clear the previous list of prerequisites before
- XX adding the new prerequisites. Thus,
- XX+
- XX
- XX
- XX
- XX*** /u2/dvadura/src/generic/dmake/src-patchlvl1/makefile.mk Tue Oct 9 21:19:30 1990
- XX--- makefile.mk Tue Oct 30 13:24:08 1990
- XX***************
- XX*** 9,15 ****
- XX #
- XX # Valid values for the above macros are:
- XX #
- XX! # OS - unix, msdos
- XX # OSRELEASE - bsd43, sysvr3, 386ix
- XX # - tccdos, mscdos (valid only of OS == msdos)
- XX # OSENVIRONMENT - uw {valid for unix, bsd43 configuration only.}
- XX--- 9,15 ----
- XX #
- XX # Valid values for the above macros are:
- XX #
- XX! # OS - unix, msdos, tos
- XX # OSRELEASE - bsd43, sysvr3, 386ix
- XX # - tccdos, mscdos (valid only of OS == msdos)
- XX # OSENVIRONMENT - uw {valid for unix, bsd43 configuration only.}
- XX***************
- XX*** 153,162 ****
- XX #
- XX # dmake scripts -- makes all the script files at once.
- XX #
- XX! SH = $(@:s/swp-/-/:s,-,/,:s/scripts/${SCRIPTFILE}/:s/c60d/cd/)
- XX! MS = MAKESTARTUP=$(@:s/swp-/-/:s,-,/,:s/scripts/startup.mk/:s/c60d/cd/)
- XX
- XX! scripts: unix-scripts msdos-scripts
- XX
- XX # To add a new environment for UNIX, simply create the appropriate entry
- XX # in the style below for the macro which contains the OS, OSRELEASE and
- XX--- 153,164 ----
- XX #
- XX # dmake scripts -- makes all the script files at once.
- XX #
- XX! SH_n = $(@:s/swp-/-/:s,-,/,:s/scripts/${SCRIPTFILE}/)
- XX! MS_n = MAKESTARTUP=$(@:s/swp-/-/:s,-,/,:s/scripts/startup.mk/)
- XX! SH = $(SH_n:s/c40d/cd/:s/c50d/cd/:s/c51d/cd/:s/c60d/cd/)
- XX! MS = $(MS_n:s/c40d/cd/:s/c50d/cd/:s/c51d/cd/:s/c60d/cd/)
- XX
- XX! scripts: unix-scripts atari-tos-scripts msdos-scripts
- XX
- XX # To add a new environment for UNIX, simply create the appropriate entry
- XX # in the style below for the macro which contains the OS, OSRELEASE and
- XX***************
- XX*** 169,176 ****
- XX unix-386ix-scripts-flags = OS=unix OSRELEASE=386ix OSENVIRONMENT=
- XX unix-bsd43-uw-scripts-flags= OS=unix OSRELEASE=bsd43 OSENVIRONMENT=uw
- XX unix-bsd43-vf-scripts-flags= OS=unix OSRELEASE=bsd43 OSENVIRONMENT=vf
- XX
- XX! unix-scripts: clean
- XX $(MAKE) SCRIPTFILE=make.sh unix-bsd43-scripts
- XX $(MAKE) SCRIPTFILE=make.sh unix-bsd43-uw-scripts
- XX $(MAKE) SCRIPTFILE=make.sh unix-bsd43-vf-scripts
- XX--- 171,179 ----
- XX unix-386ix-scripts-flags = OS=unix OSRELEASE=386ix OSENVIRONMENT=
- XX unix-bsd43-uw-scripts-flags= OS=unix OSRELEASE=bsd43 OSENVIRONMENT=uw
- XX unix-bsd43-vf-scripts-flags= OS=unix OSRELEASE=bsd43 OSENVIRONMENT=vf
- XX+ tos--scripts-flags = OS=tos OSRELEASE= OSENVIRONMENT=
- XX
- XX! unix-scripts .SWAP : clean
- XX $(MAKE) SCRIPTFILE=make.sh unix-bsd43-scripts
- XX $(MAKE) SCRIPTFILE=make.sh unix-bsd43-uw-scripts
- XX $(MAKE) SCRIPTFILE=make.sh unix-bsd43-vf-scripts
- XX***************
- XX*** 178,185 ****
- XX $(MAKE) SCRIPTFILE=make.sh unix-sysvr1-scripts
- XX $(MAKE) SCRIPTFILE=make.sh unix-386ix-scripts
- XX
- XX! unix-%-scripts:; $(MAKECMD) -ns $(MS) $($@-flags) >$(SH)
- XX
- XX # We make the standard dos scripts here, but we have to go and fix up the
- XX # make.bat file since it contains names of temporary files for the response
- XX # files required by the linker. We need to also construct the response file
- XX--- 181,192 ----
- XX $(MAKE) SCRIPTFILE=make.sh unix-sysvr1-scripts
- XX $(MAKE) SCRIPTFILE=make.sh unix-386ix-scripts
- XX
- XX! unix-%-scripts .SWAP :; $(MAKECMD) -ns $(MS) $($@-flags) >$(SH)
- XX! tos-%-scripts .SWAP :; $(MAKECMD) -ns $(MS) $($@-flags) >$(SH)
- XX
- XX+ atari-tos-scripts .SWAP : clean
- XX+ $(MAKE) SCRIPTFILE=make.sh tos--scripts
- XX+
- XX # We make the standard dos scripts here, but we have to go and fix up the
- XX # make.bat file since it contains names of temporary files for the response
- XX # files required by the linker. We need to also construct the response file
- XX***************
- XX*** 190,216 ****
- XX # unix environment, and then make certain that the fix-msdos-%-scripts target
- XX # performs the correct function for the new environment.
- XX msdos-cf = OS=msdos OSENVIRONMENT=
- XX! msdos-tccdos-scripts-flags = $(msdos-cf) OSRELEASE=tccdos NOSWAP=y
- XX msdos-tccdosswp-scripts-flags = $(msdos-cf) OSRELEASE=tccdos
- XX! msdos-mscdos-scripts-flags = $(msdos-cf) OSRELEASE=mscdos NOSWAP=y
- XX! msdos-msc60dos-scripts-flags= $(msdos-cf) OSRELEASE=mscdos NOSWAP=y MSC_VER=6.0
- XX! msdos-mscdosswp-scripts-flags = $(msdos-cf) OSRELEASE=mscdos
- XX msdos-msc60dosswp-scripts-flags = $(msdos-cf) OSRELEASE=mscdos MSC_VER=6.0
- XX
- XX! msdos-scripts: clean
- XX $(MAKE) SCRIPTFILE=mk.bat msdos-tccdos-scripts
- XX $(MAKE) SCRIPTFILE=mkswp.bat msdos-tccdosswp-scripts
- XX- $(MAKE) SCRIPTFILE=mk.bat msdos-mscdos-scripts
- XX- $(MAKE) SCRIPTFILE=mk60.bat msdos-msc60dos-scripts
- XX- $(MAKE) SCRIPTFILE=mkswp.bat msdos-mscdosswp-scripts
- XX- $(MAKE) SCRIPTFILE=mk60swp.bat msdos-msc60dosswp-scripts
- XX
- XX! msdos-%-scripts:
- XX $(MAKE) -nus $(MS) $($@-flags) >$(SH)
- XX $(MAKE) -s $(MAKEMACROS) $(MS) $($@-flags) fix-msdos-$*-scripts
- XX
- XX! MAPOBJ = $(*:s/tccdos/obj/:s/mscdos/obj/:s/msc60dos/obj60/).rsp
- XX! MAPLIB = $(*:s/tccdos/lib/:s/mscdos/lib/:s/msc60dos/lib60/).rsp
- XX OBJRSP = $(SH:s,fix/,,:s,${SCRIPTFILE},${MAPOBJ},)
- XX LIBRSP = $(SH:s,fix/,,:s,${SCRIPTFILE},${MAPLIB},)
- XX DOSOBJ = $(CSTARTUP) $(OBJDIR)/{$(OBJECTS)}
- XX--- 197,230 ----
- XX # unix environment, and then make certain that the fix-msdos-%-scripts target
- XX # performs the correct function for the new environment.
- XX msdos-cf = OS=msdos OSENVIRONMENT=
- XX! msdos-tccdos-scripts-flags = $(msdos-cf) OSRELEASE=tccdos SWAP=n
- XX msdos-tccdosswp-scripts-flags = $(msdos-cf) OSRELEASE=tccdos
- XX! msdos-msc40dos-scripts-flags= $(msdos-cf) OSRELEASE=mscdos SWAP=n MSC_VER=4.0
- XX! msdos-msc40dosswp-scripts-flags = $(msdos-cf) OSRELEASE=mscdos MSC_VER=4.0
- XX! msdos-msc50dos-scripts-flags= $(msdos-cf) OSRELEASE=mscdos SWAP=n MSC_VER=5.0
- XX! msdos-msc50dosswp-scripts-flags = $(msdos-cf) OSRELEASE=mscdos MSC_VER=5.0
- XX! msdos-msc51dos-scripts-flags= $(msdos-cf) OSRELEASE=mscdos SWAP=n MSC_VER=5.1
- XX! msdos-msc51dosswp-scripts-flags = $(msdos-cf) OSRELEASE=mscdos MSC_VER=5.1
- XX! msdos-msc60dos-scripts-flags= $(msdos-cf) OSRELEASE=mscdos SWAP=n MSC_VER=6.0
- XX msdos-msc60dosswp-scripts-flags = $(msdos-cf) OSRELEASE=mscdos MSC_VER=6.0
- XX
- XX! msdos-scripts: clean tcc-scripts msc-scripts;
- XX!
- XX! tcc-scripts .SWAP :
- XX $(MAKE) SCRIPTFILE=mk.bat msdos-tccdos-scripts
- XX $(MAKE) SCRIPTFILE=mkswp.bat msdos-tccdosswp-scripts
- XX
- XX! msc-scripts .SWAP :! 40 50 51 60
- XX! $(MAKE) SCRIPTFILE=mk$?.bat msdos-msc$?dos-scripts
- XX! $(MAKE) SCRIPTFILE=mk$?swp.bat msdos-msc$?dosswp-scripts
- XX! 40 50 51 60:;
- XX!
- XX! msdos-%-scripts .SWAP :
- XX $(MAKE) -nus $(MS) $($@-flags) >$(SH)
- XX $(MAKE) -s $(MAKEMACROS) $(MS) $($@-flags) fix-msdos-$*-scripts
- XX
- XX! MAPOBJ = obj$(SWAP:s/y/swp/:s/n//).rsp
- XX! MAPLIB = lib$(SWAP:s/y/swp/:s/n//).rsp
- XX OBJRSP = $(SH:s,fix/,,:s,${SCRIPTFILE},${MAPOBJ},)
- XX LIBRSP = $(SH:s,fix/,,:s,${SCRIPTFILE},${MAPLIB},)
- XX DOSOBJ = $(CSTARTUP) $(OBJDIR)/{$(OBJECTS)}
- XX*** /u2/dvadura/src/generic/dmake/src-patchlvl1/makefile Sat Oct 6 12:04:34 1990
- XX--- makefile Tue Oct 30 13:23:40 1990
- XX***************
- XX*** 12,35 ****
- XX @echo " make bsd43vf - Generic BSD 4.3 that needs vfprintf"
- XX @echo " make sysvr3 - Generic SysV R3 UNIX"
- XX @echo " make sysvr1 - Generic SysV R1 UNIX"
- XX- @echo " make 386ix - 386/ix (SysV R3) [NOTE: not tested]"
- XX @echo " make dynix - Sequent DYNIX system"
- XX @echo " make ultrix - Ultrix 3.0 system"
- XX @echo " make mips - Any MIPS box"
- XX @echo " make tcc - DOS with tcc 2.0"
- XX @echo " make tccswp - swapping DOS version with tcc 2.0"
- XX! @echo " make msc - DOS with MSC 4.0 to 5.1"
- XX @echo " make msc60 - DOS with MSC 6.0"
- XX! @echo " make mscswp - swapping DOS version with MSC 4.0 to 5.1"
- XX @echo " make msc60swp - swapping DOS version with MSC 6.0"
- XX
- XX bsd43uw :; /bin/sh -x < unix/bsd43/uw/make.sh
- XX bsd43vf dynix mips :; /bin/sh -x < unix/bsd43/vf/make.sh
- XX sysvr1 sysvr3 bsd43 386ix :; /bin/sh -x < unix/$@/make.sh
- XX! ultrix : sysvr3;
- XX
- XX # DOS with some form of make and sh
- XX # Note if you do not have a 'make and/or sh' program under MSDOS then
- XX # typing 'make' in the dmake distribution directory will invoke the make.bat
- SHAR_EOF
- echo "End of part 4, continue with part 5"
- echo "5" > s2_seq_.tmp
- exit 0
-
-